package net.zigin.nhi.could.waste.dao;

import net.zigin.nhi.could.waste.model.AreaCity;
import net.zigin.nhi.could.waste.vo.WarnBaseVo;
import net.zigin.nhi.could.waste.vo.WasteCountVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/*#################################################################*
# 说明:以下代码通过哲勤代码生成工具自动生成    
# 工具:GeneratorCode
# 作者:mgw1986                                                  
# 生成时间:2021-9-9 21:00:30                                               
##################################################################*/

/**
 * AreaCity数据访问类
 *
 * @author mgw1986
 * @version V1.0
 * @ClassName: AreaCityMapper
 * @date 2021-9-9 21:00:30
 */
@Repository
public interface StatisticMapper {

    /**
     * 监管
     * -- 医废机构数量
     * -- 今日收集总重量
     * -- 今日预警总数
     * -- 今日医废数量（收集 入库 出库）
     * -- 医废类型百分比
     * -- 产生医废最多的医院
     * -- 今日预警（收集超时 入库超时 出库超时 入库超重 出库超重）
     * -- 预警实时列表 编号 类型 医院 时间 处理
     * -- 本月产生报警最多的医院
     * 医废回收趋势。。？？？
     * <p>
     * 医院点击详情
     * 本月医废 重量 数量
     * 本周医废 重量 数量
     * 今日医废 	各阶段
     * <p>
     * 医院
     * ·今日收集总重量
     * ·今日预警总数
     * ·今日医废数量（收集 入库 出库）
     * ·医废类型百分比
     * 产生医废最多的科室
     * 本月产生报警最多的科室
     * ·医废回收趋势。。？？？ todo
     * ·预警实时列表 编号 类型 时间 处理
     * ·今日预警（收集超时 入库超时 出库超时 入库超重 出库超重）
     */
    // 医废机构数量
    Integer hospitalBaseCount();
    // 今日预警数量
    Integer warnBaseCountToday(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId); // 今日预警数量
    // 今日收集总重量
    Float allCollectWeightToday(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId);
    // 今日各状态医废数量
    List<WasteCountVo> wasteCountStatusToday(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId);
    // 医废分类重量占比
    List<WasteCountVo> wasteClassifyWeightRatio(@Param("hospitalBaseId") String hospitalBaseId);
    // 医废收集医院排名
    List<WasteCountVo> wasteCollectTopHospital(@Param("date") String date);
    // 今日预警各类型数量
    List<WasteCountVo> warnBaseTypeToday(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId);
    // 实时预警列表
    List<WarnBaseVo> warnBaseOnLine(@Param("hospitalBaseId") String hospitalBaseId);
    // 医院预警排名
    List<WasteCountVo> warnBaseTopHospital(@Param("date") String date);
    // 医废收集科室排名
    List<WasteCountVo> wasteCollectTopDepart(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId);
    // 预警科室排名
    List<WasteCountVo> warnBaseTopDepart(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId);
    // 医院收集信息详情
    WasteCountVo wasteCollectInfo(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId);
    // 医废收集月趋势
    List<WasteCountVo> wasteCollectTrendMonth(@Param("date") String date, @Param("hospitalBaseId") String hospitalBaseId);
    // 医废收集年趋势
    List<WasteCountVo> wasteCollectTrendYear(@Param("hospitalBaseId") String hospitalBaseId);
    // 医护人员数量
    Integer staffCount(@Param("hospitalBaseId") String hospitalBaseId);
    // 转运人员数量
    Integer revicerCount(@Param("hospitalBaseId") String hospitalBaseId);

}